//
//  StatzSink.h
//  Statz
//
//  Created by Dave MacLachlan on 07/07/23.
//
// Copyright 2007 Google Inc.
// 
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License.  You may obtain a copy
// of the License at
// 
// http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
// License for the specific language governing permissions and limitations under
// the License.
//

#import "StatzSource.h"

@interface StatzSink : StatzSource {
  NSString *lastKnownStatus_;
  id<StatzSinkPlugin> plugin_;
  BOOL enabled_;
  StatzState state_;
  NSMenu *stateMenu_;
}

+ (NSString*)stringForState:(StatzState)state;
+ (NSImage*)iconForState:(StatzState)state;
+ (NSMenu*)stateMenuWithStates:(int)states target:(id)target;
- (id)initWithPlugin:(id<StatzSinkPlugin>)plugin;

- (NSString *)lastKnownStatus;
- (void)setLastKnownStatus:(NSString *)value;
- (BOOL)isEnabled;
- (void)setEnabled:(BOOL)enabled;
- (id<StatzSinkPlugin>)plugin;
@end

extern NSString *const StatzStateChangedNotification;
extern NSString *const StatzStateChangedState;  // NSNumber
